package com.hlkj.baojin.utils;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.validation.BindingResult;

import java.util.Arrays;

/**
 * 配合validator 展示数据
 */
public class ErrororUtil {
    static final Logger logger = LoggerFactory.getLogger(ErrororUtil.class);

    /**
     * @param result
     */
    public static void testRequest(BindingResult... result) {
        StringBuffer msg = new StringBuffer("参数异常 ->  ");
        Arrays.asList(result).forEach(result1 -> {
            if (result1.hasErrors()) {
                result1.getAllErrors().forEach(objectError -> {
                    msg.append(objectError.getDefaultMessage()).append(";  ");
                    System.out.println(objectError.getDefaultMessage());
                });
            }
        });
        if (msg.length() > 10)
            throw new IllegalArgumentException(msg.toString());
    }


    public static void runThrow(Object obj, String moudle, String msg) {

        if (obj == null)
            logger.error(LogUtils.module(moudle).msg(msg).build());
        else
            logger.error(LogUtils.module(moudle).msg(msg).args(obj.getClass().getName(), obj.toString()).build());
        throw new IllegalArgumentException(msg);
    }

    public static void isTrueNull(Object obj, String moudle, String msg) {
        if (obj == null) {
            logger.error(LogUtils.module(moudle).msg(msg).build());
            throw new IllegalArgumentException(msg);
        }
    }

    public static void isFalseNull(Object obj, String moudle, String msg) {
        if (obj != null) {
            logger.error(LogUtils.module(moudle).msg(msg).build());
            throw new IllegalArgumentException(msg);
        }
    }

    /**
     * 满足条件报错
     * @param boolea
     * @param moudle
     * @param msg
     */
    public static void isTrue(Boolean boolea, String moudle, String msg) {
        if (boolea) {
            logger.error(LogUtils.module(moudle).msg(msg).build());
            throw new IllegalArgumentException(msg);
        }
    }

    /**
     * 不满足条件报错
     * @param boolea
     * @param moudle
     * @param msg
     */
    public static void isFalse(Boolean boolea, String moudle, String msg) {
        if (!boolea) {
            logger.error(LogUtils.module(moudle).msg(msg).build());
            throw new IllegalArgumentException(msg);
        }
    }

    public static void isError(String moudle, String msg) {
            logger.error(LogUtils.module(moudle).msg(msg).build());
            throw new IllegalArgumentException(msg);
    }
}
